外部リンクにだけtarget= _blankをつける方法いろいろ
code:baseof.html
<script>
$(document).ready( function () {
var domain = location.href.match(/^http?(s)?(:\/\/a-zA-Z0-9-.:+)/i) 0; })
</script>
good: Markdown側をいじる必要がない
/icons/hr.icon
🐤ショートコードを使う
code:/layouts/shortcodes/exlink.html
<a href="{{ .Get "href" }}" target="_blank">{{ .Inner }}</a>
とか作っといて、Markdownには
code:hogehoge.md
とか書く。
good: ビルド時にHTMLに直接target属性が書き込まれるだけなので軽い
bad: Markdownの可読性が落ちる
/icons/hr.icon
🐤config.tomlをいじる
code:config.toml
hrefTargetBlank = true
canonifyURLs = true
good: 楽
bad: canonifyURLsはもはや過去のものらしい
参考:
/icons/hr.icon
🐤Markdown Render Hooksを使う
参考:
code:layouts/_default/_markup/render-link.html
<a
href="{{ .Destination | safeURL }}"
{{ with .Title }} title="{{ . }}"{{ end }}
{{ if strings.HasPrefix .Destination "http" }}target="_blank" rel="noopener"{{ end }}>
{{ .Text }}
</a>
good: Markdown側をいじる必要がない
bad: サイト内リンクと外部リンクを区別しないので、サイト内リンクを相対リンクで書くようにしないといけない
現状そんなに困らないかな……? たぶんyuyuko.icon
とりあえずやってみて、不都合を感じたらやめるyuyuko.icon
hugoコマンドでビルドしたらうまくいくけど、Netlify側でビルドしてもらう(?)と効かないみたい? @ 2023-11-03
上記と同じ感じ